Data Sources (CIP)

The CIP Data Source connects directly to PLCs supporting the Common Industrial Protocol (e.g. Allen Bradley Control Logix, OMRON NJ Series) to read and write Tags

 

Create a new Data Source

A Data Source can be defined in Sym3 using the Project Explorer > Data Sources>[Right Click] >[New Source]>[CIP]

 

Note: Browsing is not supported for CIP Data Sources.

 

Select the newly created Data Source and in the Property Editor.

Fill in the address of the PLC in the Hostname field. Add an optional port number to use: <ipaddress><:ipport>. The default is 44818. E.g. 10.200.115.27:22222.

Add the Path to the CPU e.g. 1.1.

 

 

OR

 

 

 

Adding a CIP Tag

Click on the Property Editor option in the Ribbon bar to open the Property Editor Panel.

 

Create Tags in the Tag Manager Window using the + button.

Enter a Name for the Tag in Sym3 and the Data Source for the Tag.

Entering a Data Type for tags is optional except BOOL arrays and STRING tags

 

The Tag Address is the Symbolic Tag Name on the PLC.

• The Symbolic Tag Name is not case sensitive

• Invalid characters (space)!@%^&*()-+=~`;<>?|{}"'

• The Symbolic Tag Name must begin with alphabetical character or underscore

• The character after ':' must be alphanumeric

• The character after '.' must be alphanumeric

• The character after '[' must be numeric

• The character after '_' must be alphanumeric

• The character after ']' (if any) must be alphanumeric

• The Symbolic Tag Name must end with alphanumeric or ']'

 

Browsing for tags

In the tag manager:

- Click on ‘Browse’ button

- Select your datasource

- If the PLC in active and Sym3 can connect to it, all tags are available

- Double-click on tag you want to add to your project or multiple select then and click the ‘Add To Tag Database’

 

 

SYNTAX 
Controller Scope 
Atomic Tag Address = <atomic tagname>Atomic Tag Address = <atomic tagname>
Predefine Type Structure Address = <name>Predefine Type Structure Address = <name>
User Defined String Type Address = <name>#<size>User Defined String Type Address = <name>#<size>
Predefined Type Member Address = <name>.<member name>Predefined Type Member Address = <name>.<member name>
User Defined Type Member (UDT) Address = <name>.<atomic tagname>User Defined Type Member (UDT) Address = <name>.<atomic tagname>
Controller Scope 
Atomic TypesAddress = PROGRAM:<program name>.<atomic tagname>
Predefined StructureAddress = PROGRAM:<program name>.<name>
Predefine Types MemberAddress = PROGRAM:<program name>.<name>.<member name>
User Defined String Type Address = PROGRAM:<program name>.<name>#<size>
User Defined Types MemberAddress = PROGRAM:<program name>.<name>.<atomic tagname>

 

Pre-Defined TypesSyntaxExample

ALARM

AXIS_CONSUMED

AXIS_GENERIC

AXIS_GENERIC_DRIVE

AXIS_SERVO

AXIS_SERVO_DRIVE

AXIS_VIRTUAL

CAM

CAM_PROFILE

CONNECTION_STATUS

CONTROL

COORDINATE_SYSTEM

COUNTER

DEADTIME

DERIVATIVE

DISCRETE_2STATE

DISCRETE_3STATE

DIVERSE_INPUT

DOMINANT_RESET

DOMINANT_SET

EMERGENCY_STOP

ENABLE_PENDANT

EXT_ROUTINE_CONTROL

EXT_ROUTINE_PARAMETERS

FBD_BIT_FIELD_DISTRIBUTE

FBD_BOOLEAN_AND

FBD_BOOLEAN_NOT

FBD_BOOLEAN_OR

FBD_BOOLEAN_XOR

FBD_COMPARE

FBD_CONVERT

FBD_COUNTER

FBD_LIMIT

FBD_LOGICAL

FBD_MASKED_MOVE

FBD_MASK_EQUAL

FBD_MASKED_MOVE

FBD_MATH

FBD_MATH_ADVANCED

FBD_ONESHOT

FBD_TIMER

FBD_TRUNCATE

FILTER_HIGH_PASS

FILTER_LOW_PASS

FILTER_NOTCH

FIVE_POS_MODE_SELECTOR

FLIP_FLOP_D

FLIP_FLOP_JK

FUNCTION_GENERATOR

HL_LIMIT

INTEGRATOR

LEAD_LAG

LEAD_LAG_SEC_ORDER

LIGHT_CURTAIN

MAXIMUM_CAPTURE

MESSAGE

MINIMUM_CAPTURE

MOTION_GROUP

MOTION_INSTRUCTION

MOVING_AVERAGE

MOVING_STD_DEV

MULTIPLEXER

OUTPUT_CAM

OUTPUT_COMPENSATION

PHASE

PHASE_INSTRUCTION

PID

PID_ENHANCED

PIDE_AUTOTUNE

POSITION_PROP

PROP_INT

PULSE_MULTIPLIER

RAMP_SOAK

RATE_LIMITER

REDUNDANT_INPUT

REDUNDANT_OUTPUT

S_CURVE

SCALE

SEC_ORDER_CONTROLLER

SELECT

SELECT_ENHANCED

SELECTABLE_NEGATE

SELECTED_SUMMER

SERIAL_PORT_CONTROL

SFC_ACTION

SFC_STEP

SFC_STOP

SPLIT_RANGE

TIMER

TOTALIZER

TWO_HAND_RUN_STATION

UP_DOWN_ACCUM

Type Name.<member name>

Address = MyTimer.PRE

Address = MyCounter.ACC